using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class requisicao_atendimentoMap : EntityTypeConfiguration<RequisicaoAtendimento>
    {
        public requisicao_atendimentoMap()
        {
            // Primary Key
            this.HasKey(t => t.RequisicaoAtendimentoId);

            // Properties
            this.Property(t => t.nome_arquivo_bioslab)
                .HasMaxLength(30);

            this.Property(t => t.codigo_paciente_bioslab)
                .HasMaxLength(20);

            this.Property(t => t.codigo_requisicao_bioslab)
                .HasMaxLength(20);

            this.Property(t => t.situacao_requisicao_bioslab)
                .HasMaxLength(10);

            // Table & Column Mappings
            this.ToTable("requisicao_atendimento");
            this.Property(t => t.RequisicaoAtendimentoId).HasColumnName("id_requisicao");
            this.Property(t => t.id_registro).HasColumnName("id_registro");
            this.Property(t => t.id_especialidade).HasColumnName("id_especialidade");
            this.Property(t => t.id_profissional).HasColumnName("id_profissional");
            this.Property(t => t.data_requisicao).HasColumnName("data_requisicao");
            this.Property(t => t.id_situacao).HasColumnName("id_situacao");
            this.Property(t => t.data_criacao).HasColumnName("data_criacao");
            this.Property(t => t.Usuario_criacao).HasColumnName("Usuario_criacao");
            this.Property(t => t.data_alteracao).HasColumnName("data_alteracao");
            this.Property(t => t.Usuario_alteracao).HasColumnName("Usuario_alteracao");
            this.Property(t => t.qtde_reenvios_bioslab).HasColumnName("qtde_reenvios_bioslab");
            this.Property(t => t.nome_arquivo_bioslab).HasColumnName("nome_arquivo_bioslab");
            this.Property(t => t.codigo_paciente_bioslab).HasColumnName("codigo_paciente_bioslab");
            this.Property(t => t.codigo_requisicao_bioslab).HasColumnName("codigo_requisicao_bioslab");
            this.Property(t => t.situacao_requisicao_bioslab).HasColumnName("situacao_requisicao_bioslab");
            this.Property(t => t.resultado_disponivel).HasColumnName("resultado_disponivel");
            this.Property(t => t.resultado_visualizado).HasColumnName("resultado_visualizado");
            this.Property(t => t.contador_laboratorio).HasColumnName("contador_laboratorio");

            // Relationships
        //    this.HasRequired(t => t.registro_atendimento)
        //        .WithMany(t => t.requisicao_atendimento)
        //        .HasForeignKey(d => new { d.id_registro, d.id_especialidade });

       }
    }
}
